package com.lvmama.rhino.mapper;

import java.util.List;

import com.lvmama.rhino.entity.StatisticCodesConditionVO;
import com.lvmama.rhino.pojo.StatisticCode;

public interface StatisticCodeMapper {
	
	 
    /**
     * 分页查询统计code码信息
     * @param sc 
     * @param sc
     * @return
     */
	List<StatisticCode> getAllList(StatisticCodesConditionVO sc);
	
	Integer insertStatisticCodeObj(StatisticCode statisticCode);
    Integer insertOtherStatisticCodeObj(StatisticCode statisticCode);
	
	Integer getCountForCode(String code);

	/**
     * 获取统计code码数据
     * @return
     */
    List<StatisticCode> getStatisticCodeList();

    /**
     * 根据条件查询code对象
     * @param statisticCode
     * @return
     */
    StatisticCode selectStatisticCode(StatisticCode statisticCode);

    /**
     * 查询所有包含该前缀的code码信息
     * @return
     */
    List<String> getLikeCodes(String levelCode);

    List<String> getZhtiLikeCode(String levelCode);

    List<String> getPitLikeCode();
    

    /**
     * 查询name是否存在
     * @param name
     * @return
     */
    int getCountForName(String name);

    /**
     * 更新code码信息
     * @param statisticCode
     * @return
     */
    int updateCode(StatisticCode statisticCode);
    int updateOtherCode(StatisticCode statisticCode);


    /**
     * 新增code码信息
     * @param statisticCode
     * @return
     */
    int insertCode(StatisticCode statisticCode);

    /**根据id查询子节点
     * @param id
     * @return
     */
    List<StatisticCode> queryChildCodeListByParentId(Integer id);

    /**
     * 根据父级code码，查询子级对象
     * @param levelCode
     * @return
     */
    List<StatisticCode> getLikeCodeObj(String levelCode);

    /**
     * 查询所有前缀为codeName的code码值
     * @param codeName
     * @return
     */
    List<String> getCodeByLikeName(String codeName);

    /**
     * 查询所有前缀为codeName的pc,wap的code码值
     * @param codeName
     * @return
     */
    List<String> getDeviceCodeByLikeNamePcAndWap(String codeName);
    /**
     * 根据父级code码，查询子级对象(不包含父级对象)
     * @param levelCode
     * @return
     */
    List<StatisticCode> getLikeCodeObjNotParent(String levelCode);

    /**
     * 查询所有前缀为codeName的渠道code码值
     * @param codeName
     * @return
     */
    List<String> getDeviceCodeByLikeName(String codeName);

    /**
     * 根据code码查询父级和子级的code码信息
     * @param code
     * @return
     */
    List<StatisticCode> getParentAndChildrenLikeCodeObj(String levelCode);

    /**
     * 查询app的设备的code码信息
     * @return
     */
    List<String> getDeviceCodeApp();
    
    
    /**
     * 查询不包括pc的设备的code码信息
     * @return
     */
    List<String> getDeviceCodeNoPC();
    
    /**
     * 根据父级code码，查询所有子级code
     * @param string
     * @return
     */
    List<String> getChannelCode(String code);
    
    
    /** 
    * @Title: getNameByCode 
    * @Description: 通过code 获取名称
    * @param @param code
    * @param @return    设定文件 
    * @return StatisticCode    返回类型 
    * @throws 
    */
    StatisticCode getNameByCode(String code);
	
}
